package isssr.dao.src;

import isssr.dao.exception.DAOException;
import isssr.entity.src.OrganizationalGoal;
import isssr.entity.src.User;

import java.util.List;
import java.util.Map;

public interface OrganizationalGoalDAO {

	public void insert(OrganizationalGoal goal) throws DAOException;
	public void update(OrganizationalGoal goal) throws DAOException;
	public void delete(OrganizationalGoal goal) throws DAOException;
	public List<OrganizationalGoal> getAll() throws DAOException;
	public List<OrganizationalGoal> getAll(Map<String, Object> filters, Integer firstResult, Integer pageSize) throws DAOException;
	
	public List<OrganizationalGoal> getAllByOwner(User owner) throws DAOException;
	public List<OrganizationalGoal> getAllByOwner(User owner, Map<String, Object> filters, Integer firstResult, Integer pageSize) throws DAOException;
	public List<OrganizationalGoal> getAllBySuper(User super_) throws DAOException;
	public List<OrganizationalGoal> getAllBySuper(User super_, Map<String, Object> filters, Integer firstResult, Integer pageSize) throws DAOException;
	public List<OrganizationalGoal> getAllByEnactor(User enactor) throws DAOException;
	public List<OrganizationalGoal> getAllByEnactor(User enactor, Map<String, Object> filters, Integer firstResult, Integer pageSize) throws DAOException;
	
	public OrganizationalGoal getByTitle(String title) throws DAOException;
}
